#ifndef __PROJECT_REMOTE_COMPUTE_OPERATORS__
#define __PROJECT_REMOTE_COMPUTE_OPERATORS__

#include <unistd.h>

#include "common/list.h"
#include "device/type.h"

extern TaskFunc g_opFunc[OP_TYPE_OTHERS];

void* MemAlloc(const size_t size);
void MemFree();

Task* CreateTask(const size_t id, void* input, void* output);
void DestroyTask(Task** task);

TaskList* TaskListCreate(const size_t size);
void TaskListDestroy(TaskList** tasklist);

RCStatus TaskListPush(TaskList* tasklist, const EnqueueAction action);
RCStatus TaskListPop(TaskList* tasklist);

#endif // __PROJECT_REMOTE_COMPUTE_OPERATORS__